﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ProjectChords.Services.Models;

namespace ProjectChords.Services.API
{
    public interface IQuizProgressService : IGenericCRUDService<QuizProgress>
    {
        /// <summary>
        /// Gets all the QuizProgress items for the given QuizItem
        /// </summary>
        /// <param name="quizItemId">Unique Id of the QuizItem object</param>
        /// <returns></returns>
        List<QuizProgress> GetAllProgressItemsForQuiz(string quizItemId);

        /// <summary>
        /// Gets all QuizProgress items for the given student.
        /// These items include quiz reports for quizzes ranging from in-progress to completed
        /// </summary>
        /// <param name="studentId">Unique Id of the Student object</param>
        /// <returns></returns>
        List<QuizProgress> GetAllProgressItemsForStudent(string studentId);
        
        /// <summary>
        /// Gets all QuizProgress items that are in the "completed" state for the given student.
        /// </summary>
        /// <param name="studentId">Unique Id of the Student object</param>
        /// <see cref="GetAllProgressItemsForStudent"/>
        /// <seealso cref="QuizProgress#Status#COMPLETED"/>
        /// <returns></returns>
        List<QuizProgress> GetAllCompletedProgressItemsForStudent(string studentId);
    }
}
